An interface standard called IEEE 1394 has recently been attracting much attention. This IEEE 1394 lays down standards for high-speed serial bus interfaces that can handle the next generation of multimedia devices. IEEE 1394 makes it possible is to handle data that is required to have real-time capabilities, such as moving images. A bus in accordance with IEEE 1394 can be connected not only to peripheral equipment for computers, such as printers, scanners, CD-RW drives, and hard disk drives, but also to domestic appliances such as video cameras, VTRs, and TVs. This standard is therefore expected to enable a dramatic acceleration of the digitalization of electronic equipment.
Under this IEEE 1394, an event called a bus reset occurs if new electronic equipment is connected to the bus, electronic equipment is removed from the bus, or the number of nodes connected to the bus increases. When a bus reset occurs, the topology information relating to the nodes is cleared then this topology information is automatically reset. In other words, after a bus reset, tree identification (determination of the root node) and self identification are performed, then the nodes that are to act as management nodes, such as the isochronous resource manager, are determined. Ordinary packet transfer then starts.
Since the topology information is automatically reset after a bus reset under this IEEE 1394, it is possible to insert and remove cables in a state called a hot state (hot-plugging). For that reason, this makes it possible for a user to freely plug in cables in the same manner as with ordinary domestic electrical appliances such as VTRs, which could be a useful factor in popularizing home network systems.
However, it has become clear that such a bus reset would cause problems, as described below.
(1) Since topology information such as node IDs is cleared by the occurrence of a bus reset, the occurrence of a bus reset during a transaction will make it necessary to re-do that transaction. It is therefore necessary for the nodes to determine which transactions are incomplete, when a bus reset occurs.
However, the processing capabilities of the firmware (CPU) that processes the packets is generally low, so that the processing of a received packet is done after a given period of time has elapsed after the reception of that packet. For that reason, there is always a large number of unprocessed packets and it is necessary to determine which of those many unprocessed packets were received before or after a bus reset. This processing places a very large load on the firmware. In particular, since an extremely large number of packets are transferred between the nodes after a bus reset, the number of packets received after a bus reset is also extremely large and thus the problem of the increased processing load on the firmware becomes more serious.
(2) If a bus reset occurs after the firmware has issued a packet transmission start command, that transmission is halted. If a bus reset occurs substantially simultaneously with the issue of a transmission start command, it will be impossible for the firmware to learn whether or not the transmission was halted by the occurrence of the bus reset. For that reason, there is a danger that the processing of the firmware will stall, with the firmware on standby until the transmission complete status comes in.